In Deno 2.1.7 I stumbled on Deno.Stdin, Deno.FsFile but using these types fails to pass check
I can "run" the following code it doesn't pass check or compile. What is the right way to approach this?
(file is named foo.ts).
async function main () { let input: Stdin | FsFile; let decoder = new TextDecoder(); console.log("Reading from helloworld.txt"); // Try to read a named text file input = await Deno.open("helloworld.txt"); for await(const chunk of input.readable) { console.log(decoder.decode(chunk)); } // Now try to read from standard input console.log("Type in some text and press Ctrl-C to exit"); input = Deno.stdin; for await(const chunk of input.readable) { console.log(decoder.decode(chunk)); } }if (import.meta.main) main();
async function main () { let input: Stdin | FsFile; let decoder = new TextDecoder(); console.log("Reading from helloworld.txt"); // Try to read a named text file input = await Deno.open("helloworld.txt"); for await(const chunk of input.readable) { console.log(decoder.decode(chunk)); } // Now try to read from standard input console.log("Type in some text and press Ctrl-C to exit"); input = Deno.stdin; for await(const chunk of input.readable) { console.log(decoder.decode(chunk)); } }if (import.meta.main) main();
Running
deno run --allow-read foo.ts
deno run --allow-read foo.ts
works fine as does running the main function interactively in the REPL. On the other hand
deno check foo.ts
deno check foo.ts
returns the following message. How should I be import
Stdin
Stdin
ad
FsFile
FsFile
to allow it to be compiled?
Check file:///C:/Users/rsdoi/Sandbox/Writing/Articles/Deno/stdin_fsfile.tserror: TS2304 [ERROR]: Cannot find name 'Stdin'. let input: Stdin | FsFile; ~~~~~ at file:///C:/Users/rsdoi/Sandbox/Writing/Articles/Deno/stdin_fsfile.ts:2:13TS2552 [ERROR]: Cannot find name 'FsFile'. Did you mean 'File'? let input: Stdin | FsFile; ~~~~~~ at file:///C:/Users/rsdoi/Sandbox/Writing/Articles/Deno/stdin_fsfile.ts:2:21 'File' is declared here. declare var File: { ~~~~ at asset:///lib.deno.web.d.ts:622:13Found 2 errors.
Check file:///C:/Users/rsdoi/Sandbox/Writing/Articles/Deno/stdin_fsfile.tserror: TS2304 [ERROR]: Cannot find name 'Stdin'. let input: Stdin | FsFile; ~~~~~ at file:///C:/Users/rsdoi/Sandbox/Writing/Articles/Deno/stdin_fsfile.ts:2:13TS2552 [ERROR]: Cannot find name 'FsFile'. Did you mean 'File'? let input: Stdin | FsFile; ~~~~~~ at file:///C:/Users/rsdoi/Sandbox/Writing/Articles/Deno/stdin_fsfile.ts:2:21 'File' is declared here. declare var File: { ~~~~ at asset:///lib.deno.web.d.ts:622:13Found 2 errors.