如何配置 tsconfig.json 以支持字符串文字或字符串模板

How to configure tsconfig.json to support string literals or string templates

我使用带有 typescript-aurelia 模板的 swagger codgen 来生成 API 代码。结果代码大量使用了字符串文字。 cmd 行 transpolar,tsc,将抛出有关此代码的错误,但它会输出 javascript,运行没有错误。

但是,我在较大的构建任务中使用 gulp-typescript,当遇到 error TS2304: Cannot find name '$'. 这样的代码时,它不会输出 javascript 文件:

const url = `${this.basePath}/api/v2/courses/{courseId}`
      .replace(`{${'courseId'}}`, encodeURIComponent(String(${params['courseId']})));

我相信它是完全有效的 TypeScript;但是,可能有一个编译器选项来支持字符串文字/模板。只是还没找到。

有谁知道如何抑制或消除这些错误?

我认为问题不在于 TypeScript 不支持字符串文字/模板。

相反,您的最终模板似乎缺少反引号。

您正在写:

encodeURIComponent(String(${params['courseId']}))

大概应该是:

encodeURIComponent(String(`${params['courseId']}`))

或者干脆

encodeURIComponent(String(params['courseId']))