接口声明函数
interface ReturnString {(): string;}let foo: ReturnString;const bar = foo!();
type 声明函数
type ReturnString = {(): string;}let foo: ReturnString;const bar = foo!();
interface 和 type 声明重载
type TOverloadedSum = {(a: number, b: number): number;(a: string, b: string): string;}interface IOverloadedSum {(a: number, b: number): number;(a: string, b: string): string;}
声明可实例化的类型
interface CanNew {new (...args: any[]): string}let fn: CanNew;const foo = new fn!();
