我想通过ts声明具有两种类型的变量。但是编译器提示错误。像这样:
interface IAnyPropObject {
[name: string]: any;
}
let a: IAnyPropObject | ((str: string) => any);
a.B = "bbbbbbbb";//tips error
a("");//tips error
注意:我不想使用'any'声明,我只想通过这种方式约束变量,因为代码太旧了,它们不是TS代码。
Mixin vs Union类型的简要说明。
联盟:要么this
或that
类型,但不能同时使用。
interface A { [name: string]: any; }
interface B { (str: string): string; }
type UnionType = A | B;
Mixin:同时混合this
和that
键入。
interface A { [name: string]: any; }
interface B { (str: string): string; }
type MixinType = A & B;
如果您使用的是Mixin类型,则您的代码将起作用。变量a
可以同时混合使用两种类型。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句