javascript - 是否可以使用打字稿映射类型来制作接口的一种非功能属性?
问题描述
所以我在看 Typescript 的映射类型。是否可以创建一个接口来包装另一种从原始类型中删除函数的类型?例如:
interface Person{
name: string,
age: number,
speak(): void,
}
type Data<T> = ?
const dataPerson: Data<Person> ={
name: "John",
age: 20
//Speak removed because it is a function
};
谢谢!
解决方案
这是来自打字稿文档(https://www.typescriptlang.org/docs/handbook/advanced-types.html#conditional-types)并且有效:
type NonFunctionPropertyNames<T> = { [K in keyof T]: T[K] extends Function ? never : K }[keyof T];
type Data<T> = Pick<T, NonFunctionPropertyNames<T>>;
感谢大家!
推荐阅读
- php - PHP试图使用a标签将php变量链接到php脚本
- azure - 如何在使用 ARM 模板将 AD 角色分配给多个资源时使用循环
- php - 在 html 中嵌入 domain.php
- ruby - Homebrew 便携式 ruby 生成警告消息
- vba - 基于另一个组合框的 VBA 组合框选项
- c# - 如果值为 25,我如何更改颜色?因为值“<= 50”被“25”值的黄色取代
- javascript - 用于登录的电子邮件验证反应
- c# - 从 ASP.NET Web 应用程序中的数据库行中获取 Count 的值
- python - .xlsx 文件中的最后一行,带有 xlrd nrows
- c# - C# Dll 如何接受记录器接口并写入该日志文件