无法将类型'unknown'的参数分配给类型'string'的参数

时间:2019-11-01 14:27:00

标签: typescript

这是我的代码

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'的参数。

1 个答案:

答案 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";