赞美 void, ECMAScript 秒变静态类型语言

ECMAScript 的动态类型特性既给使用者提供了方便, 其方便性受到喜爱, 同时不支持静态类型也成为最大的诟病. 今天我说有办法

使用标准 ECMAScript 语法实现静态类型描述


你信么? 在看下文之前, 你静静的思考 30 分钟, 这种方法存在么?

为了让你多思考一会儿, 我得唠叨几句.

这个方法是我在开发 postdoc 后置文档规范 过程中想到的.

void 掌管静态类型的一切, 得到你的赞美, 静态类型就会出现

赞美 void

赞美 void

赞美 void


let
    v = void(String)||'',         // v 类型为 String, 值为 ''
    o = void([String,Number])||0, // o 类型允许为 String,Number, 值为 0
    i = void(Object),             // i 类型为 Object, 值为 undefined
    d = void [[String]];          // d 类型为 String 数组, 值为 undefined

function fn() {
    void String; // fn 返回值为 String 类型
}

class PureStructure {                // 描述纯结构体, 只有字段没有方法
  constructor() {
    void {
      name: void [!'',String],       // 字符串类型, 且必须有值
      age: void([!0, Number]) || 0,  // 数值类型, 必须有值, 缺省值为 0
      email: void String             // 字符串类型, 可以省略
    };
  }
}复制代码

我向 T39 提交了一个提案: proposal-static-type-constraints-features

这个提案能否被接受是另外的事情, T39 或许有更多的考虑.

重要的是该方法是无副作用的, 即便无法进入标准, 我们也可以大胆的使用.

赞美 void

赞美 void

赞美 void


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值