这是我的水果
export type Fruit = "Orange" | "Apple" | "Banana"
现在我正在导入另一个typescript文件中的fruit.ts。这是我的
myString:string = "Banana";
myFruit:Fruit = myString;
当我做的时候
myFruit = myString;
我得到一个错误:
类型“string”不能分配给类型“orange”“apple”“banana”“
如何将字符串赋给自定义类型fruit的变量?
Typescript3.4
引入新的“const”断言
现在,您可以防止文字类型(例如“orange”
或“red”
)被“加宽”为具有所谓const
断言的类型string
。
您将能够执行以下操作:
let fruit = 'orange' as const; // or...
let fruit = <const> 'orange';
然后它就不会再把自己变成字符串
了--这就是问题的根源。
您需要将其转换为:
export type Fruit = "Orange" | "Apple" | "Banana";
let myString: string = "Banana";
let myFruit: Fruit = myString as Fruit;
还请注意,使用字符串文字时,只需使用一个
正如@simon_weaver的另一个回答中提到的,现在可以将其断言为const
:
let fruit = "Banana" as const;
我有一个打字错误: 类型“(element:Conversation)=>void”的参数不可赋给类型“(value:Conversations,index:number,obj:Conversation[])=>boolean”的参数。不能将“void”类型赋给“boolean”类型。 这个错误是什么意思?提前谢谢你。
我试图用flutter插件HTTP发出HTTP POST请求,但我得到了一个标题错误。有人知道这是什么原因吗?因为在我的其他应用程序中,这工作得非常好?
将以下代码转换为typescript时出错。 错误TS2339:属性样式在元素类型上不存在。 当我为如下相同的值分配所需值时 那么误差在元素上,那就是 错误TS2322:类型“Element | null”不可分配给类型“{style:any;}”。类型“null”不可分配给类型“{style:any;}”。
这是一个类中的函数,允许你双击和单击手势。它在Swift 2.3中运行良好,但在转换到Swift 3后,它抛出了一些错误。我怎么也想不明白。我评论了它们发生的地方。
我是angular的新手,我在学习这个hero教程时,偶然发现了这个错误: 我在这里复制了错误。
我有这个打字代码: 给我以下错误: 严重性代码描述项目文件行抑制状态错误构建:“字符串|1”类型的参数不能分配给“字符串”类型的参数。 有人能帮我吗?我刚刚升级到新版本的Typescript,这条消息现在出现在多个地方。当我将鼠标悬停在categoryColumnWide上时,它显示这是一个“数字” 据我所知,我使用的是Typescript 2.1