0.0.2 • Published 4 years ago
babel-plugin-typescript-non-null-assertion-runtime v0.0.2
babel-plugin-typescript-non-null-assertion-runtime
Summary
TypeScript has non-null-assertion to assert some expression is not nullable.
But it's a type only feature. Which means nothing will happend if the non-nullable value is nullable. It's a little hard to call it an assertion.
This plugin will adds runtime assert into all TypeScript non-null-assertion. And also we can add some additional easily.
With runtime assertion, we may find bugs as early as possible.
Install
- Run
yarn add babel-plugin-typescript-non-null-assertion-runtime --dev - Setup your babel config file. You can see using-a-plugin
Example
If we have below code:
const a = {
b: 1,
};
a!.b = 1;
a.b! = 2;
const c = a!.b;
const d = a.b!;And it will transform to:
function _nonNull(expr, message = "NonNull assertion failed") {
if (expr === undefined || expr === null) {
throw new Error(message);
}
return expr;
}
const a = {
b: 1,
};
_nonNull(a).b = 1;
a.b! = 2;
const c = _nonNull(a).b;
const d = _nonNull(a.b);Options
assertFunctionName: optional, name of assert function.assertMessage: optional, error message of assert.errorMessageIncludeSource: optional, include assert expression into error message.