-
How to use Disposable in Typescript 5.2 Beta
Typescript has recently released using keyword feature.
I am trying the following code but not able to compile
```ts import fs from "node:fs"; class TempFile implements Disposable { #path: string; #handle: number;
constructor(path: string) { this.#path = path; this.#handle = fs.openSync(path, "w+"); }
// other methods
Symbol.dispose { // Close the file and delete it. fs.closeSync(this.#handle); fs.unlinkSync(this.#path); } } ```
It is giving this error.
```bash src/index.ts:2:27 - error TS2304: Cannot find name 'Disposable'.
2 class TempFile implements Disposable { ~~~~~~~~~~
src/index.ts:13:11 - error TS2339: Property 'dispose' does not exist on type 'SymbolConstructor'.
13 Symbol.dispose { ~~~~~~~ ```
Any ideas ?
- alexharri.com Why doesn't TypeScript properly type Object.keys?
A look at TypeScript's structural type system, and we how we can effectively use it to our benefit.
-
Should other languages have structural typing?
It's pretty cool, and pretty powerful what you can do with it. Should other languages adopt this approach? I think named types is better for building abstractions, but I haven't come up with a good explanation yet.