这是我的代码
index.ts
import { isCTStr } from "./CT/isOCT";
let Avgo: string = "kamo";
let Pult: unknown = 15;
const x = (a: string) => {};
(function() {
if (!isCTStr(Pult)) {
return;
}
x(Pult) // Argument of type 'unknown' is not assignable to parameter of type 'string'.
})();
./CT/isOCT
const isCTStr = (value: unknown): boolean =>
typeof value === "string" ? true : false;
export {isCTStr}
当我运行文件index.ts时出现错误。
类型'unknown'的参数不能分配给类型'string'的参数。
答案 0 :(得分:1)
您需要使用特殊的返回类型将isCTStr设置为custom type guard:
const isCTStr = (value: unknown): value is string =>
typeof value === "string" ? true : false;
PS,三元也不必要;您可以通过以下方式获得相同的效果:
const isCTStr = (value: unknown): value is string =>
typeof value === "string";