【文件属性】:
文件名称:opaque-type-library:@ iadvize-ossopaque-type-Typescript的不透明类型
文件大小:108KB
文件格式:ZIP
更新时间:2021-04-10 13:21:51
typescript TypeScript
@ iadvize / opaque-types
灵感来自
用法
npm add @iadvize-oss/opaque-type
为什么 ?
语义类型检查
以下纯真代码将正确编译,不同之处在于,如果混合使用createRoom参数,则会在运行时引入讨厌的错误。
type RoomID = string ;
type UserID = string ;
function createRoom ( roomId : RoomID , userId : UserID ) {
// something
}
const roomId : RoomID = ... ;
const userId : UserID = ... ;
createRoom ( userId , roomId ) ;
不透明的救援!
以下代码将无法编译,因为Opaque为RoomId和UserId增加了更多的
【文件预览】:
opaque-type-library-master
----.gitignore(72B)
----.eslintrc(176B)
----package.json(1KB)
----package-lock.json(419KB)
----src()
--------index.ts(3KB)
----CODEOWNERS(158B)
----test-api()
--------opaqueAPI.test.ts(810B)
--------__snapshots__()
----jest.config.js(422B)
----LICENSE(1KB)
----CHANGELOG.md(1KB)
----tsconfig.json(594B)
----.github()
--------PULL_REQUEST_TEMPLATE.md(79B)
--------CONTRIBUTING.md(4KB)
--------CODE_OF_CONDUCT.md(3KB)
--------workflows()
----rollup.config.js(354B)
----test-types()
--------opaqueAPI.test.ts(564B)
----README.md(3KB)
----.eslintignore(36B)
----typedoc.json(154B)
----.dependabot()
--------config.yml(363B)