如何通过打字稿声明两种类型的变量

免费的眼泪

我想通过ts声明具有两种类型的变量。但是编译器提示错误。像这样:

interface IAnyPropObject { 
    [name: string]: any;
}
let a: IAnyPropObject | ((str: string) => any);
a.B = "bbbbbbbb";//tips error
a("");//tips error

注意:我不想使用'any'声明,我只想通过这种方式约束变量,因为代码太旧了,它们不是TS代码。

EyuelDK

Mixin vs Union类型的简要说明。

联盟:要么thisthat类型,但不能同时使用。

interface A { [name: string]: any; }
interface B { (str: string): string; }
type UnionType = A | B;

Mixin:同时混合thisthat键入。

interface A { [name: string]: any; }
interface B { (str: string): string; }
type MixinType = A & B;

如果您使用的是Mixin类型,则您的代码将起作用。变量a可以同时混合使用两种类型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章