我的 TypeScript v2.2.1,我在 my-module
中有对象列表:
export const OneObj = { prop1: 'value1' }
export const TwoObj = { prop2: 'value2' }
我想在另一个模块中创建新类型:
import * as importedObject from './my-module';
console.log(importedObject)
// { OneObj: { prop1: 'value1' }, TwoObj: { prop2: 'value2' } }}
type NewType = keyof importedObject;
// Error: Cannot find name 'importedObject'
为什么 TypeScript 会抛出错误?
Cannot find name 'importedObject'
同时,我可以这样做:
type NewType = keyof { OneObj: { prop1: 'value1' }, TwoObj: { prop2: 'value2' } };
// NewType === ("OneObj" | "TwoObj")
最佳答案
这似乎是一种迂回的方式,但我可以这样做:
import * as importedObject from './my-module';
type NewType = keyof typeof importedObject; // OK: "OneObj" | "TwoObj"
关于typescript - 如何告诉 TypeScript : to get `keyof importedObject` ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42494914/