出现此问题的原因是因为 TypeScript 无法确定变量的具体类型,而在调用带有字符串类型参数的函数时,变量的类型必须是字符串类型才能进行赋值。解决方法是可以使用类型断言(Type Assertion)将变量的类型确定下来,例如:
let str: unknown = "hello world"; // unknown 类型的变量
let strLength: number = (str as string).length; // 将 str 断言为 string 类型
在实际应用中,也可以使用类型推断(Type Inference)等方法确定变量的类型。
另外,也可以在函数参数上添加类型注解来解决此问题,例如:
function example(str: string) {
// function body
}
let unknownStr: unknown = "hello world";
if (typeof unknownStr === "string") {
example(unknownStr); // 在确定 unknownStr 的类型后,调用 example 函数
}
通过以上方法,即可解决 Argument of type 'unknown' is not assignable to parameter of type 'string'. TS2345 这个 TypeScript 错误。
上一篇:Argumentoftype'this'isnotassignabletoparameteroftype'Construct'.-AWSOpenSearchServerless”
下一篇:Argumentoftype'{type:string;features:({type:isnotassignabletoparameteroftype'GeoJsonObject'