ค้นหาเว็บไซต์

javascript - ฉันจะประกาศฟังก์ชันจากไฟล์อื่นใน Typescript ได้อย่างไร?


ฉันมีฟังก์ชันต่อไปนี้ในไฟล์หนึ่ง:

function alertWin(title, message) {
   .......
   .......
}

ในไฟล์ไทป์สคริปต์อื่นฉันมี:

function mvcOnFailure(message) {
    "use strict";
    alertWin("Internal Application Error", message);
}

ฉันกำลังได้รับข้อผิดพลาดที่บอกว่า "alertwin" ไม่มีอยู่ในขอบเขตปัจจุบัน

วิธีแก้ปัญหานี้สำหรับฉันคือการนิยามฟังก์ชันนี้ในไฟล์อื่นแล้วอ้างอิงถึงหรือไม่? ถ้าใช่ นิยามนั้นจะมีลักษณะอย่างไร?

คำตอบ #1

คุณสามารถทำสิ่งนี้ได้ (โดยสมมติว่าชื่อเรื่องและข้อความทั้งคู่ควรเป็นสตริง):

interface alertWinInterface{
    (title:string, message: string):any;
}

declare var alertWin: alertWinInterface;

คุณสามารถใส่นี่ในไฟล์เดียวกัน หรือใส่ในไฟล์นิยามแวดล้อมแยกต่างหาก (.d.ts) ซึ่งคุณนำเข้า:

/// <reference path="myDefinitions.d.ts" />

หรือคุณอาจแค่ import ไฟล์อื่นที่มีการนิยามฟังก์ชันจริง แต่คุณจะไม่ได้รับการสนับสนุนการพิมพ์แบบสแตติก

คำตอบ #2

วิธีการนี้ดูเหมือนว่าจะได้ผลสำหรับฉัน:

declare function alertWin(title: string, message: string) : void;

และเช่นเดียวกับวิธีแก้ของแมทธิว คุณวางมันในไฟล์นิยามแล้วจากนั้นอ้างอิงมัน

บทความที่เกี่ยวข้อง