在打字稿中:有没有一种方法可以内联初始化对象或数组(具有某种接口类型)?

时间:2019-11-08 19:36:24

标签: typescript typescript-typings

在打字稿中,我想做这样的事情:

interface SomeType {
 name: string
}
useState([]:SomeType[]); // This creates an empty array of SomeType inline & calls a function called useState

甚至

function getArrayOfSomeType():SomeType[] {
  return []:SomeType[];
}

其他情况可能涉及相同的概念,但带有地图/词典:

// Maybe there is a better way to declare maps?
interface MapOfSomeTypes {
 [key:string]: SomeType
}

function getMapOfTypes():MapOfSomeTypes {
  return {} as MapOfSometypes; // or perhaps {}:MapOfSomeTypes
}

这是为了避免必须先声明它们,然后在我需要的只是它们的空版本时将它们返回或将它们传递给另一个函数(例如react-hooks)。

1 个答案:

答案 0 :(得分:2)

无需显式声明它们-打字稿会为您推断出来,因此

interface SomeType {
 name: string
}
useState([]);
function getArrayOfSomeType():SomeType[] {
  return [];
}
interface MapOfSomeTypes {
 [key:string]: SomeType
}

function getMapOfTypes():MapOfSomeTypes {
  return {};
}