Closed
Description
nightly build
"compilerOptions": {
"module": "amd",
"moduleResolution": "classic",
"noEmitOnError": true,
"allowUnreachableCode": false,
"allowUnusedLabels": false,
"outDir": "./built",
"noResolve": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"target": "es5"
// "strictNullChecks": true
}
export type Optional<a> = Some<a> | None;
export interface None { readonly none: string; }
export interface Some<a> { readonly some: a; }
export const none : None = { none: '' };
export function isSome<a>(value: Optional<a>): value is Some<a> {
return 'some' in value;
}
export function fn<r>(): void {
let result: Optional<r> = none;
isSome(result)
? result.some
: undefined
}