代码是:
const foo = (foo: string) => {
const result = []
result.push(foo)
}
我得到以下TS错误:
"[ts]类型"string"的参数不能分配给类型"ever"的参数。"
我做错了什么?这是虫子吗?
这似乎是typescript中的一些奇怪的行为,因为遗留的原因,他们一直在使用这些行为。如果您有代码:
const result = []
通常,它会被视为你写的:
const result:any[] = []
但是,如果您在tsconfig中同时具有noInimplityany
FALSE和严格的NullChecks
TRUE,则将其视为:
const result:never[] = []
恕我直言,这种行为违背了所有的逻辑。打开空检查会改变数组的条目类型??然后再打开noInimplityany
实际上恢复了any
的使用,没有任何警告??
当您真的有一个any
数组时,您不需要用额外的代码来指示它。
另一种方式是:
const result = [] as any;
您只需将结果定义为字符串数组,如下所示:
const result : string[] = [];
如果不定义数组类型,默认情况下它将是
从不
。因此,当您尝试向其添加字符串时,它是类型不匹配的,因此它抛出了您看到的错误。
将以下代码转换为typescript时出错。 错误TS2339:属性样式在元素类型上不存在。 当我为如下相同的值分配所需值时 那么误差在元素上,那就是 错误TS2322:类型“Element | null”不可分配给类型“{style:any;}”。类型“null”不可分配给类型“{style:any;}”。
这是我运行时得到的结果。我使用的是ionic4版本的Angular 8。
我有一个打字错误: 类型“(element:Conversation)=>void”的参数不可赋给类型“(value:Conversations,index:number,obj:Conversation[])=>boolean”的参数。不能将“void”类型赋给“boolean”类型。 这个错误是什么意思?提前谢谢你。
在编写代码时候发现 toRef 无法传入第二个参数,因为 key 类型被指定成了 never。 我在vue官网上没发现有这个定义。。不太确定哪里出现了问题。
很好的一天。我不熟悉使用VSCode键入脚本。 获取以下错误: > 错误TS2322:类型'()= 代码: DTO。输电系统 LinkedObject.ts 我正在尝试使用上述接口方法实例化类: TravelClientFormPopulator.ts 任何帮助都将不胜感激。