V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
loveyou1
V2EX  ›  问与答

Typescript:类型问题

  •  1
     
  •   loveyou1 · 2020-07-06 19:44:47 +08:00 · 725 次点击
    这是一个创建于 1390 天前的主题,其中的信息可能已经有所发展或是发生改变。
    interface Arg = {arg: {}}
    function test(**arg: Arg**) {}
    
    {} 代表什么类型
    

    看到过的一些写法

    - type Test = {} | number
    - interface Test<T = {}>{}
    ...
    

    疑惑

    • 代表所有类型,应该为 any
    • 代表非原始类型,应该为 object

    奇怪的地方 测试了一下

    • 能代表除了 null,undefined, void 之外的类型。
    • 在 TS3.0 以前的文档里面没有找到使用过的地方,3.0 只是使用没有说明。

    问题

    {} 代表了什么类型,有啥文档贴一下

    还是一样,大佬勿喷

    mxT52CRuqR6o5
        1
    mxT52CRuqR6o5  
       2020-07-06 20:06:53 +08:00
    https://www.typescriptlang.org/docs/handbook/interfaces.html
    按文档中 Our First Interface 的例子,语义应该和 interface 相同
    loveyou1
        2
    loveyou1  
    OP
       2020-07-06 20:35:02 +08:00
    @mxT52CRuqR6o5 最开始我也是这么想的,但是接口连属性都是必须实现的,可选都要 ?:,啥也不写还啥都能传?
    mxT52CRuqR6o5
        3
    mxT52CRuqR6o5  
       2020-07-06 23:15:28 +08:00 via Android
    @loveyou1
    interface 是规定必须要有什么东西
    而不是规定只能有哪些东西
    我这么说你能明白吗
    就比如我声明一个只有一个属性的 interface
    但实际我可以传 100 个属性的 object 进去,只要这 100 个属性里有我 interface 规定的那个属性就行了,可多不可少
    loveyou1
        4
    loveyou1  
    OP
       2020-07-07 09:26:51 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1921 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 16:25 · PVG 00:25 · LAX 09:25 · JFK 12:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.