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;
และเช่นเดียวกับวิธีแก้ของแมทธิว คุณวางมันในไฟล์นิยามแล้วจากนั้นอ้างอิงมัน
