问题描述
我想引用我从库中导入的类型对象中的值类型,但不进行控制。
我正在使用无服务器 TypeScript 包,它提供了一个名为 username score
0 1 0.000800
2 1 0.000009
4 2 0.009800
7 3 0.019000
8 3 0.000100
的类型,如下所示:
AWS
我知道可以用
{
...
functions?: {
[k: string]: {
name: string;
...
}
}
}
引用整个函数子对象的类型
我的问题是,如何以编程方式请求该子对象的值的子类型?
请参阅下面的代码,其中“TYPE_HERE”表示我想在哪里填写类型。
AWS["functions"]
当它作为动态键的值属性存在时,如何使用根类型甚至类型 import type { AWS } from "@serverless/typescript";
export default (): TYPE_HERE => ({
name: "",...
});
来声明类型?
解决方法
这应该有效:
interface AWS {
functions?: {
[k: string]: {
name: string;
}
}
}
type FnType
= NonNullable<AWS["functions"]> extends { [K: string]: infer R } ? R : never
const d = (): FnType => ({
name: "",dd: '',// error
});