TypeScript中的已析构对象声明

col17t5w  于 2023-01-27  发布在  TypeScript
关注(0)|答案(2)|浏览(132)

我可以像这样声明析构函数参数:

const List = ({ items, css }: { items: string[], css: string[] }) => {
    
}

但是我不喜欢我有多余的代码。有没有一种方法可以声明它像

const List = ({ items of string[], css of string[] }) => {
    
}

由于我通常在React中需要这个,我想没有“对象 Package 器”就不能传递参数。有人有解决方案吗,特别是对于在React组件中传递参数吗?

z6psavjg

z6psavjg1#

不幸的是不可能。有一个关于这个问题的长期运行的GitHub线程here,不幸的是还没有任何具体的计划来引入任何新的语法来帮助解决这个问题。

0pizxfdo

0pizxfdo2#

不幸的是,如果你打算使用TypeScript,你只需要习惯于它比JavaScript更冗长的事实。
如果您只是想将"类型语法复杂性"从组件实现中移走,那么您可以使用类型别名,如下所示:
TSPlayground

type ListProps = {
  items: string[];
  css: string[];
};

// Or (subjectively) more concisely:
// type ListProps = Record<"css" | "items", string[]>;

const List = ({ items, css }: ListProps) => {
  // Component implementation
};

相关问题