TypeScript

290 readers
1 users here now

For all things TypeScript

founded 1 year ago
MODERATORS
1
2
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]
 
 

Typescript has recently released using keyword feature.

I am trying the following code but not able to compile

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.

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 ?

2
3
 
 

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.

4
 
 
5
2
submitted 1 year ago* (last edited 1 year ago) by [email protected] to c/[email protected]