我在一个typescript文件中有以下函数:
export function buildEnvTests<T extends ReadonlyArray<string>>(environments: T) {
const r = {} as {[K in T[number] as `is${K}`]: () => boolean};
for (let e of environments) {
r[`is${e}`] = () => '' === e;
}
return r;
}
字符串
如果我要将此函数导入到TS文件中,VS Code中的Intellisense会在返回值中正确报告派生的键。例如:
import { buildEnvTests } from "./test.js";
const x = ['A', 'B', 'C'] as const;
const r = buildEnvTests(x);
r. // Here, properties named isA, isB and isC show up as expected.
型
但是,如果我在JavaScript文件中执行相同的操作,则不会得到任何建议:
import { buildEnvTests } from "./test.js";
const x = ['A', 'B', 'C'];
const r = buildEnvTests(x);
r. // Here: No Intellisense.
型
1条答案
按热度按时间l2osamch1#
你可以这样定义函数
字符串
TS Play