diff --git a/samples/extendsobject.ts b/samples/extendsobject.ts new file mode 100644 index 00000000..0f097409 --- /dev/null +++ b/samples/extendsobject.ts @@ -0,0 +1,5 @@ +// copy from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/lodash/index.d.ts +declare interface LoDashStatic { + at(); +}; + diff --git a/samples/extendsobject.ts.scala b/samples/extendsobject.ts.scala new file mode 100644 index 00000000..830bfb3f --- /dev/null +++ b/samples/extendsobject.ts.scala @@ -0,0 +1,13 @@ + +import scala.scalajs.js +import js.annotation._ +import js.| + +package extendsobject { + +@js.native +trait LoDashStatic extends js.Object { + def at[T <: js.Object](): js.Dynamic = js.native +} + +} diff --git a/src/main/scala/org/scalajs/tools/tsimporter/Importer.scala b/src/main/scala/org/scalajs/tools/tsimporter/Importer.scala index b63fa339..078a1f0c 100644 --- a/src/main/scala/org/scalajs/tools/tsimporter/Importer.scala +++ b/src/main/scala/org/scalajs/tools/tsimporter/Importer.scala @@ -258,6 +258,7 @@ class Importer(val output: java.io.PrintWriter) { val baseTypeRef = base match { case TypeName("Array") => QualifiedName.Array case TypeName("Function") => QualifiedName.FunctionBase + case TypeName("object") => QualifiedName.Object case TypeNameName(name) => QualifiedName(name) case QualifiedTypeName(qualifier, TypeNameName(name)) => val qual1 = qualifier map (x => Name(x.name)) diff --git a/src/main/scala/org/scalajs/tools/tsimporter/sc/Definitions.scala b/src/main/scala/org/scalajs/tools/tsimporter/sc/Definitions.scala index c4e198c6..d25505c6 100644 --- a/src/main/scala/org/scalajs/tools/tsimporter/sc/Definitions.scala +++ b/src/main/scala/org/scalajs/tools/tsimporter/sc/Definitions.scala @@ -54,6 +54,7 @@ object QualifiedName { val Array = scala_js dot Name("Array") val Dictionary = scala_js dot Name("Dictionary") val FunctionBase = scala_js dot Name("Function") + val Object = scala_js dot Name("Object") def Function(arity: Int) = scala_js dot Name("Function"+arity) def Tuple(arity: Int) = scala_js dot Name("Tuple"+arity) val Union = scala_js dot Name("|")