typescript - Onko olemassa tapa muuntaa JSON-tiedosto objektimalliksi Denossa?
Ongelma: Kun yritän lukea tiedoston (student.json) ja tallentaa sen Student[]-tyyppiseen muuttujaan, se sanoo "Type 'unknown' is not assignable to type 'Student[]'." Tämä on TypeScript-tiedosto.
import { Student } from "../Models/studentModel.ts";
import { readJson, writeJson } from "https://deno.land/std/fs/mod.ts";
const f = await readJson("../public/student.json");
const students:Student[] = f;
export const get_all_students = (ctx: Context) => {
return ctx.json(students,200);
};
Odotus: Yritän palauttaa tiedostosta JSONin palvelimelle. Kokeillut ratkaisut: Olen kokeillut Json.stringify(). Se antaa silti saman virheen.
Vastaus #1
readJson-metodi palauttaa tuntemattoman tyypin lupauksen. Tuntematon tyyppi voidaan määrittää vain any-tyypille ja tuntematon tyyppi itselleen.
Jos haluat pakottaa kääntäjän luottamaan siihen, että tuntemattoman tyypin arvo on tiettyä tyyppiä, voit käyttää tyyppivarmistusta näin:
const f = await readJson("./public/student.json");
const students:Student[] = f as Student[];
Vastaus #2
Yllä olevan virheen ratkaisemiseksi käytä vain tyyppivarmistusta:
const students = f as Student[];
En ole perehtynyt denoon, mutta olen melko varma, että voisit vain kirjoittaa tiedoston vastausvirtaukseen tai tarjoilla sen sopivien otsikoiden kanssa. En ole varma, onko se järkevää sinun tilanteessasi.
