chore: generate extra files.

This commit is contained in:
Artem Kobzar
2022-09-07 12:46:45 +00:00
committed by Space
parent 45619ab390
commit a6d1f30e89
4 changed files with 27 additions and 0 deletions
@@ -1,5 +1,11 @@
declare namespace JS_TESTS {
type Nullable<T> = T | null | undefined
namespace foo {
interface OptionalFieldsInterface {
readonly required: number;
readonly notRequired?: Nullable<number>;
}
}
namespace foo {
interface TestInterface {
readonly value: string;
@@ -24,5 +30,6 @@ declare namespace JS_TESTS {
readonly __doNotUseOrImplementIt: foo.TestInterfaceImpl["__doNotUseOrImplementIt"] & foo.AnotherExportedInterface["__doNotUseOrImplementIt"];
}
function processInterface(test: foo.TestInterface): string;
function processOptionalInterface(a: foo.OptionalFieldsInterface): string;
}
}
@@ -34,4 +34,15 @@ class ChildTestInterfaceImpl(): TestInterfaceImpl("Test"), AnotherExportedInterf
fun processInterface(test: TestInterface): String {
return "Owner ${test.getOwnerName()} has value '${test.value}'"
}
external interface OptionalFieldsInterface {
val required: Int
val notRequired: Int?
}
fun processOptionalInterface(a: OptionalFieldsInterface): String {
return "${a.required}${a.notRequired ?: "unknown"}"
}
@@ -2,6 +2,7 @@
var TestInterfaceImpl = JS_TESTS.foo.TestInterfaceImpl;
var ChildTestInterfaceImpl = JS_TESTS.foo.ChildTestInterfaceImpl;
var processInterface = JS_TESTS.foo.processInterface;
var processOptionalInterface = JS_TESTS.foo.processOptionalInterface;
function assert(condition) {
if (!condition) {
throw "Assertion failed";
@@ -12,5 +13,8 @@ function box() {
assert(processInterface(new ChildTestInterfaceImpl()) === "Owner TestInterfaceImpl has value 'Test'");
// @ts-expect-error "Just test that this code will throw compilation error for a user"
assert(processInterface({ value: "bar", getOwnerName: function () { return "RandomObject"; } }) === "Owner RandomObject has value 'bar'");
assert(processOptionalInterface({ required: 4 }) == "4unknown");
assert(processOptionalInterface({ required: 4, notRequired: null }) == "4unknown");
assert(processOptionalInterface({ required: 4, notRequired: 5 }) == "45");
return "OK";
}
@@ -1,6 +1,7 @@
import TestInterfaceImpl = JS_TESTS.foo.TestInterfaceImpl;
import ChildTestInterfaceImpl = JS_TESTS.foo.ChildTestInterfaceImpl;
import processInterface = JS_TESTS.foo.processInterface;
import processOptionalInterface = JS_TESTS.foo.processOptionalInterface;
function assert(condition: boolean) {
if (!condition) {
@@ -15,5 +16,9 @@ function box(): string {
// @ts-expect-error "Just test that this code will throw compilation error for a user"
assert(processInterface({ value: "bar", getOwnerName: () => "RandomObject" }) === "Owner RandomObject has value 'bar'")
assert(processOptionalInterface({ required: 4 }) == "4unknown")
assert(processOptionalInterface({ required: 4, notRequired: null }) == "4unknown")
assert(processOptionalInterface({ required: 4, notRequired: 5 }) == "45")
return "OK";
}